home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 October / CHIP Turkiye Ekim 2000.iso / prog / naps / 04 / setup.exe / Gnucleus / PrefBandwidth.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-24  |  5.8 KB  |  256 lines

  1. /********************************************************************************
  2.  
  3.     Gnucleus - A node application for the Gnutella network
  4.     Copyright (C) 2000 John Marshall
  5.  
  6.     This program is free software; you can redistribute it and/or modify
  7.     it under the terms of the GNU General Public License as published by
  8.     the Free Software Foundation; either version 2 of the License.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19.     For support, questions, comments, etc...
  20.     E-Mail: 
  21.         swabby@c0re.net
  22.     
  23.     Address:
  24.         21 Cadogan Way
  25.         Nashua, NH, USA 03062
  26.  
  27. ********************************************************************************/
  28.  
  29. // PrefBandwidth.cpp : implementation file
  30. //
  31.  
  32. #include "stdafx.h"
  33. #include "Gnucleus.h"
  34. #include "GnucleusDoc.h"
  35. #include "PrefBandwidth.h"
  36.  
  37. #ifdef _DEBUG
  38. #define new DEBUG_NEW
  39. #undef THIS_FILE
  40. static char THIS_FILE[] = __FILE__;
  41. #endif
  42.  
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CPrefBandwidth property page
  45.  
  46. IMPLEMENT_DYNCREATE(CPrefBandwidth, CPropertyPage)
  47.  
  48. CPrefBandwidth::CPrefBandwidth() : CPropertyPage(CPrefBandwidth::IDD)
  49. {
  50.     Doc = NULL;
  51.  
  52.     //{{AFX_DATA_INIT(CPrefBandwidth)
  53.     //}}AFX_DATA_INIT
  54. }
  55.  
  56. CPrefBandwidth::~CPrefBandwidth()
  57. {
  58. }
  59.  
  60. void CPrefBandwidth::DoDataExchange(CDataExchange* pDX)
  61. {
  62.     CPropertyPage::DoDataExchange(pDX);
  63.     //{{AFX_DATA_MAP(CPrefBandwidth)
  64.     DDX_Control(pDX, IDC_CHECK_DROP_DL, m_chkDropDL);
  65.     DDX_Control(pDX, IDC_CHECK_DROP_UL, m_chkDropUL);
  66.     DDX_Control(pDX, IDC_EDIT_TOTAL_UL, m_ebTotalUL);
  67.     DDX_Control(pDX, IDC_EDIT_TOTAL_BW, m_ebTotalBW);
  68.     DDX_Control(pDX, IDC_CHECK_TOTAL_UL, m_chkTotalUL);
  69.     DDX_Control(pDX, IDC_CHECK_TOTAL_BW, m_chkTotalBW);
  70.     //}}AFX_DATA_MAP
  71. }
  72.  
  73.  
  74. BEGIN_MESSAGE_MAP(CPrefBandwidth, CPropertyPage)
  75.     //{{AFX_MSG_MAP(CPrefBandwidth)
  76.     ON_BN_CLICKED(IDC_CHECK_DROP_DL, OnCheckDropDl)
  77.     ON_BN_CLICKED(IDC_CHECK_DROP_UL, OnCheckDropUl)
  78.     ON_BN_CLICKED(IDC_CHECK_TOTAL_BW, OnCheckTotalBw)
  79.     ON_EN_CHANGE(IDC_EDIT_TOTAL_BW, OnChangeEditTotalBw)
  80.     ON_BN_CLICKED(IDC_CHECK_TOTAL_UL, OnCheckTotalUl)
  81.     ON_EN_CHANGE(IDC_EDIT_TOTAL_UL, OnChangeEditTotalUl)
  82.     //}}AFX_MSG_MAP
  83. END_MESSAGE_MAP()
  84.  
  85. /////////////////////////////////////////////////////////////////////////////
  86. // CPrefBandwidth message handlers
  87.  
  88. BOOL CPrefBandwidth::OnInitDialog() 
  89. {
  90.     CPropertyPage::OnInitDialog();
  91.     
  92.     Doc = (CGnucleusDoc *) ((CGnucleusApp *) AfxGetApp())->MasterDoc;
  93.     
  94.     // Auto drop downloads
  95.     if(Doc->m_AutoDropDL)
  96.         m_chkDropDL.SetCheck(1);
  97.  
  98.     // Auto drop uploads
  99.     if(Doc->m_AutoDropUL)
  100.         m_chkDropUL.SetCheck(1);
  101.  
  102.     // Limit total bandwidth
  103.     if(Doc->m_LimitTotal)
  104.     {
  105.         m_chkTotalBW.SetCheck(1);
  106.         m_ebTotalBW.SetWindowText( DWrdtoStr(Doc->m_LimitTotal) );
  107.     }
  108.     else
  109.     {
  110.         m_ebTotalBW.SetWindowText("Unlim.");
  111.         m_ebTotalBW.EnableWindow(FALSE);
  112.     }
  113.  
  114.     // Limit upload bandwidth
  115.     if(Doc->m_LimitUp)
  116.     {
  117.         m_chkTotalUL.SetCheck(1);
  118.         m_ebTotalUL.SetWindowText( DWrdtoStr(Doc->m_LimitUp) );
  119.     }
  120.     else
  121.     {
  122.         m_ebTotalUL.SetWindowText("Unlim.");
  123.         m_ebTotalUL.EnableWindow(FALSE);
  124.     }
  125.  
  126.     // Set visual bandwidth meter preference
  127.     if(Doc->m_BwVisual == 1)
  128.         ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->SetCheck(1);
  129.  
  130.     else if(Doc->m_BwVisual == 2)
  131.         ((CButton *) GetDlgItem(IDC_RADIO_METER))->SetCheck(1);
  132.  
  133.     else if(Doc->m_BwVisual == 3)
  134.         ((CButton *) GetDlgItem(IDC_RADIO_HISTOGRAM))->SetCheck(1);
  135.  
  136.     else
  137.         ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->SetCheck(1);
  138.  
  139.  
  140.     return TRUE;  // return TRUE unless you set the focus to a control
  141.                   // EXCEPTION: OCX Property Pages should return FALSE
  142. }
  143.  
  144. void CPrefBandwidth::OnCheckDropDl() 
  145. {
  146.     SetModified();    
  147. }
  148.  
  149. void CPrefBandwidth::OnCheckDropUl() 
  150. {
  151.     SetModified();
  152. }
  153.  
  154. void CPrefBandwidth::OnCheckTotalBw() 
  155. {
  156.     if(m_chkTotalBW.GetCheck())
  157.     {
  158.         m_ebTotalBW.SetWindowText( DWrdtoStr(Doc->m_LimitTotal) );
  159.         m_ebTotalBW.EnableWindow();
  160.     }
  161.     else
  162.     {
  163.         m_ebTotalBW.SetWindowText( "Unlim." );
  164.         m_ebTotalBW.EnableWindow(FALSE);
  165.     }
  166.  
  167.     SetModified();    
  168. }
  169.  
  170. void CPrefBandwidth::OnChangeEditTotalBw() 
  171. {
  172.     SetModified();
  173. }
  174.  
  175. void CPrefBandwidth::OnCheckTotalUl() 
  176. {
  177.     if(m_chkTotalUL.GetCheck())
  178.     {
  179.         m_ebTotalUL.SetWindowText( DWrdtoStr(Doc->m_LimitUp) );
  180.         m_ebTotalUL.EnableWindow();
  181.     }
  182.     else
  183.     {
  184.         m_ebTotalUL.SetWindowText("Unlim.");
  185.         m_ebTotalUL.EnableWindow(FALSE);
  186.     }
  187.  
  188.     SetModified();    
  189. }
  190.  
  191. void CPrefBandwidth::OnChangeEditTotalUl() 
  192. {
  193.     SetModified();
  194. }
  195.  
  196. BOOL CPrefBandwidth::OnApply() 
  197. {
  198.     CString store;
  199.  
  200.     // Auto drop downloads
  201.     if(m_chkDropDL.GetCheck())
  202.         Doc->m_AutoDropDL = 1;
  203.     else
  204.         Doc->m_AutoDropDL = 0;
  205.  
  206.     // Auto drop uploads
  207.     if(m_chkDropUL.GetCheck())
  208.         Doc->m_AutoDropUL = 1;
  209.     else
  210.         Doc->m_AutoDropUL = 0;
  211.  
  212.     // Limit total bandwidth
  213.     if(m_chkTotalBW.GetCheck())
  214.     {
  215.         m_ebTotalBW.GetWindowText(store);
  216.  
  217.         if(store != "")
  218.             Doc->m_LimitTotal = atoi(store);
  219.     }
  220.     else
  221.     {
  222.         Doc->m_LimitTotal = 0;
  223.     }
  224.  
  225.     // Limit upload bandwidth
  226.     if(m_chkTotalUL.GetCheck())
  227.     {
  228.         m_ebTotalUL.GetWindowText(store);
  229.  
  230.         if(store != "")
  231.             Doc->m_LimitUp = atoi(store);
  232.     }
  233.     else
  234.     {
  235.         Doc->m_LimitUp = 0;
  236.     }
  237.  
  238.     // Set visual bandwidth meter preference
  239.  
  240.     if( ((CButton *) GetDlgItem(IDC_RADIO_TEXT))->GetCheck())
  241.         Doc->m_BwVisual = 1;
  242.     
  243.     else if( ((CButton *) GetDlgItem(IDC_RADIO_METER))->GetCheck())
  244.         Doc->m_BwVisual = 2;
  245.     
  246.     else if( ((CButton *) GetDlgItem(IDC_RADIO_HISTOGRAM))->GetCheck())
  247.         Doc->m_BwVisual = 3;
  248.  
  249.     else
  250.         Doc->m_BwVisual = 1;
  251.  
  252.     
  253.     return CPropertyPage::OnApply();
  254. }
  255.  
  256.